﻿/// <reference path="Alert.js" />
function Aprovar(objeto, link) {
    CallAjax("Aprovar", "{agendaId:" + objeto.agendaId + ", dataInicial:'" + objeto.dataInicial + "', horaEntrada:'" + objeto.horaEntrada + "', horaSaida:'" + objeto.horaSaida + "'}", link);
}
function Descartar(agendaId, link) {
    CallAjax("Reprovar", "{ agendaId:" + agendaId + "}", link);
}
function CallAjax(method, parans, link) {
    var alerta = new Alert();
    alerta.Name = "AgendaAlerta";
    $.ajax({
        url: eS.UrlPadrao + 'Views/Consulta/Agenda.aspx/' + method,
        type: 'post',
        data: parans,
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (e) {
            var msg = e.d[0] == "*" ? e.d.substr(1, e.d.length) : e.d;
            alerta.AddMessage(msg);
            alerta.Type = AlertType.Success;
            if (e.d[0] == "*") {
                if (method.toLowerCase() == "aprovar")
                    $(link).parent().html("<span>confirmado</span>");
                else {
                    $(link).parent().html("<span>não confirmado</span>");
                }
                $("div[id*='__aprovar']").dialog('close');
                $("input[id*='AgendamentoId']").val('');
                $("input[id*='dataInicio']").val('');
                $("input[id*='horaInicio']").val('');
                $("input[id*='horaFim']").val('');
            } else {
                alerta.Type = AlertType.Error;
            }
            alerta.Show();
        },
        error: function (e) {
            alerta.Type = AlertType.Error;
            alerta.AddMessage(e.d);
            alerta.Show();
        }
    });
}
$(function () {
    var _util = util();
    $("a[id*='aprovaItem']").click(function (e) {
        e.preventDefault();
        var cod = $(this).attr('item');
        $("input[id*='dataInicio']").val($(this).attr("dataValue"));
        $("input[id*='horaInicio']").val($(this).attr("horaInicio"));
        $("input[id*='horaFim']").val($(this).attr("horaFim"));
        $("input[id*='AgendamentoId']").val(cod);
        var link = this;
        $("div[id*='__aprovar']").dialog({
            modal: true,
            width: 600,
            height: 300,
            buttons: {
                "confirmar": function () {
                    var alerta = new Alert();
                    alerta.Name = "erroGeral";
                    alerta.Type = AlertType.Error;
                    var agendamentoId = $("input[id*='AgendamentoId']").val();
                    var dataInicial = $("input[id*='dataInicio']").val();
                    var horaInicial = $("input[id*='horaInicio']").val();
                    var horaFinal = $("input[id*='horaFim']").val();
                    var erros = "";
                    if (agendamentoId == "")
                        alerta.AddMessage("Código de agendamento inválido");
                    if (!_util.ValidarData(dataInicial))
                        alerta.AddMessage("Data inválida");
                    if (!_util.ValidarHora(horaInicial))
                        alerta.AddMessage("Hora inicial inválida");
                    if (!_util.ValidarHora(horaFinal))
                        alerta.AddMessage("Hora final inválida");
                    if (!alerta.HasMessage())
                        Aprovar({ agendaId: agendamentoId, dataInicial: dataInicial, horaEntrada: horaInicial, horaSaida: horaFinal }, link);
                    else {
                        alerta.Show();
                    }
                },
                "descartar": function () {
                    var agendamentoId = $("input[id*='AgendamentoId']").val();
                    if (confirm("Deseja realmente descartar o agendamento")) {
                        Descartar(agendamentoId, link);
                    }
                }
            },
            open: function (event, ui) {
                $(".ui-dialog-buttonset").find("button").attr("class", "btn btn-primary");
            }
        });
        return false;
    });
});